const _ = require('lodash');
const fp = require('lodash/fp');

//数据  horsepower马力，dollar_value价格,in_stock库存
const cars =[
    { name: 'Ferrari FF', horsepower:660, dollar_value:700000, in_stock: true },
    { name: 'Spyker C12 Zagato', horsepower:650, dollar_value:648000, in_stock: false },
    { name: 'Jaguar XKR-S', horsepower:550, dollar_value:132000, in_stock: false },
    { name: 'Audi R8', horsepower:525, dollar_value:114200, in_stock: false },
    { name: 'Aston Martin One-77', horsepower:750, dollar_value:185000, in_stock: true },
    { name: 'Pagani Huayra', horsepower:700, dollar_value:130000, in_stock: false }
]
// 使用flowRight写一个sanitizeNames()函数，返回一个下划线链接的小写字符串，把数组中的name转换为这种形式，例如：
// sanitizeNames(["Hello World"]) => ["hello_world"]



function sanitizeNames(cars){
    //获取cars数组中的name
    let names = _.map(cars,'name')

    //大写转小写
    let toLower =  fp.map(fp.toLower, names)

    // 使用下划线链接
    let _underscore = fp.replace(/\W+/g, '_')  //<--无须改动，并在sanitizaNames中使用它
 
    //使用fp.flowRight()
    const f = fp.flowRight(fp.map(_underscore),fp.map(fp.toLower))
    return f(names)

}
sanitizeNames(cars)
console.log(sanitizeNames(cars))